package com.wms.dao.sys;

import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.Resource;
import javax.sql.DataSource;

import org.springframework.jdbc.core.RowMapper;
import org.springframework.jdbc.core.support.JdbcDaoSupport;
import org.springframework.stereotype.Repository;

import com.wms.domain.sys.User;

@Repository("UserDaoImpl")
public class UserDaoImpl extends JdbcDaoSupport implements IUserDao {

	/**
	 * 获取数据源
	 * 
	 * @param dataSource 来源于 bean.xml配置文件的dataSource
	 */
	@Resource
	public final void setJdbcDaoDataSource(DataSource dataSource) {
		super.setDataSource(dataSource);
	}

	@Override
	public void findUsers() {
		// 新建list集合接受所有的用户信息
		List<User> userList = new ArrayList<User>();
		// 做数据库持久化 并且用 userList 接受查询出来数据
		userList = this.getJdbcTemplate().query("select * from user ", new RowMapper() {
			// 类似循环 所有的数据在ResultSet rs 对象中取， 也可以根据行数取int rowNum
			@Override
			public Object mapRow(ResultSet rs, int rowNum) throws SQLException {
				// 新建user对象 从数据库取到的数据保存user的属性中
				User user = new User();
				// rs.getString(2) getString是要取的数据的类型 2是属性在行的第几列
				user.setUsername(rs.getString(2));
				user.setPassword(rs.getString(3));
				user.setAge(rs.getInt(4));
				user.setBirth(rs.getDate(5));
				// 返回user对象 SpringJDBC会自动将user 添加到 userList 中
				return user;
			}
		});

		for (User u : userList) {
			System.out.println(u);
		}
	}

}
